//
//  UVPlayerItem+AVFoundation.h
//  UtoVRPlayer
//
//
//  Created by administrator on 12/15/15.
//  Copyright © 2015 xue. All rights reserved.
//

#import <UtoVRPlayer/UtoVRPlayer.h>

/**
 *  渲染方式
 */
typedef NS_ENUM(NSUInteger, UVPlayerItemRenderType) {
    /**
     *  视频尺寸未定。这种情况播放器自动判断合适的播放方式
     */
    UVPlayerItemRenderTypeUnkown,
    /**
     *  全景视频
     */
    UVPlayerItemRenderTypePanoVideo,
    /**
     *  视频尺寸为1:1 180 全景视频
     */
    UVPlayerItemRenderTypePano180Video1By1,
    /**
     *  视频尺寸为1:1 3D视频
     */
    UVPlayerItemRenderTypeD3Video1By1 = 82,
    /**
     *  视频尺寸为4:1 3D视频
     */
    UVPlayerItemRenderTypeD3Video4By1,
    /**
     *  视频尺寸为2:1 3D视频
     */
    UVPlayerItemRenderTypeD3Video2By1,
    /**
     *  视频尺寸为2:1 180度3D视频
     */
    UVPlayerItemRenderTypeD3180Video2By1,
    /**
     *  普通2D视频
     */
    UVPlayerItemRenderTypeD2Video
};

/**
 *  播放器渲染模式扩展。主要是扩展播放器播放3D视频的能力
 */
@interface UVPlayer (RenderType)
/**
 *  播放器渲染类型。如果尝试播放一个渲染类型不确定的视频，播放器会通过相应的代理方法通知给代理对象，此时通过设置播放器的renderType进行渲染方式的调整。
 */
@property (nonatomic,assign) UVPlayerItemRenderType renderType;

#pragma mark - UVPlayerViewStyleDefault模式
/**
 *  是否需要显示修改渲染类型按钮。
 *
 *  @warning 仅在style == UVPlayerViewStyleDefault模式下有效
 */
@property (nonatomic,assign) BOOL changeRenderTypeButtonHidden;
@end


/**
 *  UVPlayerItem 播放器渲染模式扩展。主要是扩展播放器播放3D视频的能力
 */
@interface UVPlayerItem (RenderType)
/**
 *  渲染方式
 */
@property (nonatomic,assign) UVPlayerItemRenderType renderType;

/**
 *  通过指定渲染类型和文件来源类型，初始化一个全景视频文件模型实例
 *
 *  @param path       地址。本地、在线MP4文件地址，点播或者直播M3U8文件地址。
 *  @param type       type
 *  @param renderType renderType
 *
 *  @return 
 */
-(instancetype)initWithPath:(NSString*)path type:(UVPlayerItemType)type renderType:(UVPlayerItemRenderType)renderType;
@end
